                1. The Field of the Invention        
The present invention generally relates to messaging systems. In particular, the present invention provides for de-featuring portions of electronic messages that may be causing a message processor to fail.
2. Background and Related Art
Messaging systems have become an increasingly popular way to communicate. These communication systems range from e-mail systems to secured transactions, from chat rooms to various web services such as Internet shopping. Each of these communication systems requires that end points in a connection use a special set of rules when they communicate, called protocols. Protocols exist at several functional layers within the end-to-end communication and are often described in an industry or international standard.
A few examples of such protocols include: Transmission Control Protocol (TCP), which uses a set of rules to exchange messages with other Internet points at the information packet level; and Internet Protocol (IP), which uses a set of rules to send and receive messages at the Internet address level. Additional protocols that are usually packaged with a TCP/IP suite include Hypertext Transfer Protocol (HTTP), File Transfer Protocol (FTP), Simple Mail Transfer Protocol (SMTP), Simple Object Access Protocol (SOAP), etc., each defining sets of rules to use with the corresponding programs elsewhere on the Internet or over a network connection.
Regardless of the protocol used to transfer a message between two end points, messages may include a wide variety of data files or message payloads for processing and consumption. For example, a message could include audio, video, images, application programs, and other kinds of data, as well as simple ASCII text, or other payloads encapsulated into a single message using a messaging format such as, e.g., Multi-Purpose Internet Mail Extensions (MIME). At each layer within the transfer of a message between end points, messages may be processed in accordance with the protocol used at that level to perform various functions on various machines. For instance, a server may process a message when scanning for anti-virus, anti-SPAM filtering, index searching, etc. The client, on the other hand, may process a message using the appropriate application for viewing or otherwise consuming the various forms of data files or content within the message.
At every level of processing, there exits a potential for a failure or process abort for any number of various reasons. For example, the message may have become malformed in transit or at the time of creation due to some loss or corruption of data within the message itself. Other more malicious reasons for message processing failure may occur through some form of system attack, e.g., where an individual launches poisonous messages (i.e., messages that have purposefully been corrupted and cannot or should not be processed) in an attempt to manipulate system resources or shutdown the system entirely. Another reason for processing failure may be due to errors within the software processing system itself. For instance, a program or application attempting to process a well-formed message, or a portion thereof, may be malfunctioning causing the message processor to crash. As such, the message may appear to be malformed or poisonous, but it's actually a software malfunction.
Regardless of the reason for the processing failure, other portions of the message may still be valid and/or capable of being processed. Due in part, however, to the fact that the processing system itself crashes, there is currently no way to identify and remove those portions of the message that are problematic. Accordingly, there exists a need to identify, process, and preserve valid content included within an electronic message by removing problematic portions of a message that have previously caused a processing failure.